home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYNACE.ASC < prev    next >
Text File  |  1997-06-20  |  1KB  |  74 lines

  1. _Advanced Object-Oriented Features for C/C++_
  2. by Blake McBride
  3.  
  4.  
  5. Example 1: 
  6.  
  7. defclass  Person  {  /* Define class */
  8.     char    name[30];  /* Private instance variables */
  9.     int     age;
  10. class:
  11.     int     numberOfPeople; /* Private class variables */
  12. };
  13. imeth   SetName(char *nm) { /* Define method */
  14.     strcpy(name, nm);
  15.     return self;
  16. }
  17. imeth   char *GetName() {
  18.     return name;
  19. }
  20. cmeth   int GetNumberOfPeople() {
  21.     return numberOfPeople;
  22. }
  23.  
  24.  
  25. Example 2: 
  26.  
  27. void    myfun() {
  28.    object  obj;
  29.    char   *str;
  30.    obj = New(Person);
  31.    SetName(obj, "Blake");
  32.    str = GetName(obj);
  33. }
  34.  
  35.  
  36. Example 3: 
  37.  
  38. typedef  struct  {
  39.     char    name[30];
  40.     int     age;
  41. } Person;
  42. void    *NewPerson() {
  43.     return malloc(sizeof(Person));
  44. }
  45. void    SetName(void *p, char *nm) {
  46.     strcpy(((Person *)p)->name, nm);
  47. }
  48. char    *GetName(void *p) {
  49.     return ((Person *)p)->name;
  50. }
  51.  
  52.  
  53. Example 4: 
  54.  
  55. void    fun() {
  56.     void    *p;
  57.     char    *str;
  58.     p = NewPerson();
  59.     SetName(p, "Blake");
  60.     str = GetName(p);
  61. }
  62.  
  63.  
  64. Example 5: 
  65.  
  66. int SetName(object obj, char *a)
  67. {
  68.     int (*meth)();
  69.     meth = find_method(ClassOf(obj), SetName_object);
  70.     return meth(obj,a);
  71. }
  72.  
  73.  
  74.